<?php
declare (strict_types = 1);

namespace app\command;

use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;

class Http extends Command
{
    protected function configure()
    {
        // 指令配置
        $this->setName('tcp')
            ->setDescription('the tcp command');
    }

    protected function execute(Input $input, Output $output)
    {
        // 指令输出
        // $output->writeln('tcp');
        //创建Server对象，监听 0.0.0.0:9501端口
        $serv = new \Swoole\Server("0.0.0.0", 9502);
 
        //监听连接进入事件
        $serv->on('Connect', function ($serv, $fd) {
            echo "与客户端已经建立连接: .\n";
        });
 
        //监听数据接收事件
        $serv->on('Receive', function ($serv, $fd, $from_id, $data) {
            $serv->send($fd, "服务器发送消息: ".$data);
        });
 
        //监听连接关闭事件
        $serv->on('Close', function ($serv, $fd) {
            echo "客户端关闭: Close.\n";
        });
 
        //启动服务器
        $serv->start();
        // 指令输出
        $output->writeln('tcp');

    }
}
